I. Field of the Invention
The present invention relates to data communications and, more particularly, to a method of establishing multiple parallel conversations between two transaction programs with a single instance of each transaction program.
II. Prior Art
A communications network can be defined as a collection of "nodes" which are interconnected through "communications links". These terms are commonly used in descriptions of networks employing an architecture known as Systems Network Architecture (SNA). SNA will be described in general below although more comprehensive descriptions of the architecture may be found in a variety of manuals available from the assignee of the present invention. Manuals providing a more comprehensive description of SNA include Systems Network Architecture Technical Overview (GC30-3073) International Business Machines Corporation and Systems Network Architecture Concepts and Products (GC30-3072) International Business Machines Corporation. More comprehensive descriptions may be found in Systems Network Architecture: Format and Protocol Reference Manual: Architecture Logic for Type 2.1 nodes (SC30-3422) International Business Machines Corporation and Systems Network Architecture-Transaction Programmer's Reference Manual for LU Type 6.2 (GC30-3084) International Business Machines Corporation.
While the referenced manuals may provide additional information useful to the reader, those manuals are not required for an understanding of the present invention and are not incorporated herein by reference.
SNA is the description of the logical structure, formats, protocols, and operational sequences for transmitting information units through networks and for controlling the configuration and operation of networks. In SNA, the physical network consists of actual processors, called nodes, and data links between the nodes. The logical network consists of logical processors, called logical units (LUs), and logical connections called sessions. One or more sessions connect one LU to another LU. Information is transmitted from one LU to another LU over a session.
LU 6.2 is a particular type of SNA logical unit. LU 6.2 provides a connection, or port, between connection transaction programs and network resources. Each LU 6.2 makes a set of resources available to the transaction programs.
Transaction programs process transactions. A transaction is a type of application. It usually involves a specific set of input data and triggers the execution of a specific process or job. One example is the entry of a customer's deposit and the updating of the customer's balance.
A transaction program, as used herein, is a program that is executed by or within LU 6.2 and performs services related to the processing of a transaction. For example, the program may be an application program that processes a transaction or is one of several programs that make up a transaction processing application.
Distributed processing of a transaction within an SNA network occurs when transaction programs communicate by exchanging information over the sessions between their LUs, treating the session as a resource that is shared between the programs.
Among the services that SNA and, in particular, LU 6.2 provides is interprogram communication. Interprogram communication permits distribution of the processing of a transaction among multiple programs within a network. The programs coordinate the distributed processing by exchanging control information or data.
The transaction programs communicate with one another, or have a "conversation", by exchanging "verbs", or formatted functions conforming to a predefined protocol. In order to be able to communicate with one another, an LU-to-LU (LU-LU) "session", or data path through the network, must be established.
The current process by which LU-LU sessions are established is well-known. The process begins when a user, or transaction program (TP), sends an ALLOCATE verb to its own logical unit. Certain parameters are supplied with this ALLOCATE verb. The parameters include, inter alia, the name of the remote LU at which a remote transaction program is located, the network properties for the session to be allocated to a conversation between two TPs and the name of the remote TP.
Assuming the network can support a conversation between two TPs, the primary LU establishes an LU-LU communication to the remote LU. This entails extensive network communication between the various network elements such as the network control points and link stations. The particulars of the intra-network-element communication required for LU-LU session establishment are transparent to the TPs and the details are unnecessary for understanding the present invention. Network element communication during an LU-LU session is discussed in depth in Citron et al., U.S. Pat. No. 4,972,437. For the purposes of describing the present invention, an LU-LU session is established between the primary LU and remote LU either prior to or as a result of a transaction program initiating a conversation with another transaction program.
An example of the establishment of a transaction program conversation is where transaction program, TP A, wishes to establish a conversation with a partner program, TP B. In this case, TP A issues an ALLOCATE verb to establish the conversation. Where TP A wishes to establish multiple conversations with TP B, TP A issues multiple ALLOCATE verbs to TP B thereby invoking multiple instances, or executable copies, of TP B, one instance of TP B per conversation.
This is satisfactory for many transaction program designs, but is unacceptable for others. A requirement has arisen for a transaction program to have the capability to establish multiple, parallel, conversations with the same instance of the partner transaction program.
For example, in order to spread the flow of the requested data, the data base program establishes multiple conversations with the originating transaction program by establishing multiple instances of the data base program. An example of this is shown in FIG. I, where a data communication network 10 is illustrated. Network 10 includes a plurality of LUs 12A, 12B, 12C and 12D, each of which provides access to the network 10. The network 10 may conform to the International Business Machines Corporation (IBM) Systems Network Architecture (SNA) LU Type 6.2 which is described in the publications listed above.
In the illustrated network, TP A initiates a conversation with TP B by issuing an ALLOCATE verb to its local LU 12A and, as defined in the LU Type 6.2 network, a session 14 is seized for the initiated conversation. TP A requests three files, as an example, from the transaction program TP B. TP B can send the files in series over the conversation on session 14. Alternatively, if TP A wishes to establish two additional conversations with TP B, TP A issues two additional ALLOCATE verbs. This does not, however, cause multiple conversations to be established with the same instance of TP B; rather, it causes multiple instances of TP B to be invoked, i.e., TP B' and TP B", each of the additional conversations being conveyed over sessions 15 and 16, respectively. In this case, unless the various instances TP B, TP B', and TP B" can communicate with one another, the flow of the data files is inefficient as, for example, duplicate file transfer may occur. In either case, an undesirable result follows as a consequence of the attempt to shorten the transmission time of the files.